1. Field of the Invention
The present invention pertains to cache cards and, more particularly, to a battery gauge for use in a cache card.
2. Description of the Related Art
As the power of individual electronic computing devices has increased, computing systems have become more distributed. Early xe2x80x9cpersonalxe2x80x9d computers, although powerful for their time, were suitable for little more than primitive word processing, spreadsheet, and video game applications More intensive applications, e.g., computer aided design/computer aided manufacturing (xe2x80x9cCAD/CAMxe2x80x9d) applications were typically hosted on relatively large, more powerful xe2x80x9cmainframexe2x80x9d computers. Users invoked applications from time-sharing terminals that served as a conduit for information. However, most of the computational power resided on the host mainframe, where most of the computations were performed.
Stand-alone computing devices eventually evolved from dumb terminals and weak personal computers to powerful personal computers and workstations. As they became more powerful, the computational hours for applications became more distributed. Individual computers eventually became networked, and the networks distributed the computational activities among the network members. Many computations once performed on a mainframe computer, or that were not previously performed, were now performed on networked personal computers. Networks also permitted users to share certain types of computing resources, such as printers and storage.
More powerful computing devices also permitted larger, more complex networks and other computing systems. Small local area networks (xe2x80x9cLANsxe2x80x9d) became wide area networks (xe2x80x9cWANsxe2x80x9d). Recently, networks have evolved to produce system or storage area networks (xe2x80x9cSANsxe2x80x9d). Some of these networks are public, e.g., the Internet. Some may be characterized as xe2x80x9centerprise computing systemsxe2x80x9d because, although very large, they restrict access to members of a single enterprise or other people they may authorize. Some enterprise computing systems are referred to as xe2x80x9cintranetsxe2x80x9d because they employ the same communication protocols as the Internet.
FIG. 1 illustrates some concepts associated with large scale computing systems such as SANs. The computing system 100 includes two servers 105, 110 that include a Redundant Array of Independent Disks (xe2x80x9cRAIDxe2x80x9d) controller 115, a Fibre Host Bus Adapter (xe2x80x9cHBAxe2x80x9d) 120, and at least one internal disk 125. Each RAID controller is connected to the internal disk 125 and an external storage enclosure 130, also commonly referred to as Just a Bunch Of Disks (xe2x80x9cJBODxe2x80x9d). The RAID controller 115, internal disk 125, and JBOD 130 constitute xe2x80x9cdirect attached storagexe2x80x9d subsystem. The direct attached storage subsystem is xe2x80x9clocalxe2x80x9d to the respective servers 105, 110 in the sense that other servers cannot read from or write to it. The Fibre HBA 120 connected to a switch or hub 135 in a switched Fibre fabric 140. The servers 150, 110 can both read from and write to the mass storage units 145 through their respective Fibre HBA 120 and the switch/hub 135 in the switched fabric 140. Thus, the Fibre HBAs 120, switched fabric 140, switch/hub 135, and mass storage units 145 constitute a xe2x80x9csharedxe2x80x9d memory subsystem.
Most types of electronic and computing systems comprise many different devices that electronically communicate with each other over one or more buses. Exemplary types of devices include, but are not limited to, processors (e.g., microprocessors, digital signal processors, and micro-controllers), memory devices (e.g., hard disk drives, floppy disk drives, and optical disk drives), and peripheral devices (e.g., keyboards, monitors, mice). When electrically connected to a bus, these types of devices, as well as others not listed, are all sometimes generically referred to as xe2x80x9cbus devices.xe2x80x9d In FIG. 1, the RAID controllers 115 communicate the buses 150, 155, respectively. The Fibre HBA 120 communicates with switched Fabric 140 and mass storage units 145 over buses 160, 165, respectively.
For instance, a computer typically includes one or more printed circuit boards having multiple integrated circuit components (or xe2x80x9cbus devicesxe2x80x9d) and connectors mounted to them. The components and connectors are interconnected by and communicate with each other over trace etched into the board. The boards are interconnected by plugging one or more of the boards into another board intended for this purpose. A first component on a board communicates with a second component on the same board over the traces etched onto the board. The first component communicates with a component on another board through the connectors by which the two boards are plugged into the third board intended for that purpose. Thus, both the traces on the boards and the connectors between the boards are a part of the bus. Again referring to FIG. 1, the RAID controllers 115 and Fibre HBAs 120 are two such printed circuit boards.
DIMMs are one common type of memory component. A DIMM is simply a printed circuit board (xe2x80x9cPCBxe2x80x9d) on which a number of memory chips are mounted. The memory chips are usually some form of xe2x80x9cvolatilexe2x80x9d memory, which means that the data stored in them will be lost if power supplied to the chips is interrupted. Many DIMMs therefore include battery packs mounted to them. The battery packs house batteries that provide xe2x80x9cbackupxe2x80x9d power to the DIMM if the primary source of power is interrupted for some reason. The backup power supplied by the battery packs then provides an opportunity to save the data if primary power is restored in time.
DIMMs are widely used in mass storage devices such as redundant arrays of inexpensive disks (xe2x80x9cRAIDsxe2x80x9d). DIMMs are sometimes used in a RAID controller to implement a type of memory known as xe2x80x9ccache,xe2x80x9d and DIMMs used in this context are therefore sometimes referred to as xe2x80x9ccache cards.xe2x80x9d RAID controllers will only allow posted writes to occur when it can guarantee that the batteries can sustain backup for a minimum period of time agreed upon by the user in the event of a power outage.
One problem frequently encountered in these environments is dead batteries for DIMMs. The useable life of a battery is finite-typically about three years. RAID controllers will only allow posted writes to occur when it can guarantee that the batteries can sustain backup for a minimum period of time agreed upon by the user in the event of a power outage. Each battery type requires a separate technique used to estimate the amount of capacity left. Conventional fuel gauge circuits require resistors in series with the flow of current. These resistors consume power, take up board space, and require an additional ADC circuit to interpret the results. Some battery types such as NiMH have a constant voltage from 100% down to 15% capacity, which makes the terminal voltage technique useless. Typically, the industry has measured the amount of capacity remaining in a battery by measuring the current entering and leaving the battery over time. Alternatively, the amount of capacity remaining in a battery has been measured by measuring the voltage level across the battery terminals only with certain types of battery chemistries. Still further, some approaches measure the amount of capacity remaining in a battery by dropping a resistive load across the battery terminals in an effort to measure the internal battery resistance only with certain types of battery chemistries. Each of these approaches has disadvantages.
The present invention is directed to resolving, or at least reducing, one or all of the problems mentioned above.
In one aspect, the invention is a battery fuel gauge for a cache card comprising a charging circuit for charging at least one battery and a decrementor circuit for counting the amount of time system power is removed from the battery.